package springboot.app.common;

import org.springframework.beans.BeansException ;
import org.springframework.context.ApplicationContext ;
import org.springframework.context.ApplicationContextAware ;
import org.springframework.stereotype.Component ;

/**
 * @author 80002165 @date 2017年7月6日 上午10:19:34
 */
@Component
public class SpringContextHolder implements ApplicationContextAware {
    private  static ApplicationContext applicationContext ;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        SpringContextHolder.applicationContext = applicationContext ;
    }
    
    public ApplicationContext getApplicationContext(){
        return applicationContext ;
    }
    
    /**
     * 获取系统中自动装配的bean
     * @author 80002165 @date 2017年7月6日 上午10:21:57
     * @param requiredType
     * @return
     */
    public static <T> T getBean(Class<T> requiredType){
        return applicationContext.getBean(requiredType) ;
    }
    
    
}
